layui.use(['table', 'admin', 'ax'], function () {
    var $ = layui.$;
    var table = layui.table;
    var $ax = layui.ax;
    var admin = layui.admin;

    /**
     * 管理
     */
    var LxGoodsLwh = {
        tableId: "lxGoodsLwhTable",
    };

    /**
     * 初始化表格的列
     */
    LxGoodsLwh.initColumn = function () {
        return [[
            {type: 'checkbox'},
            {field: 'id', hide: true, title: '商品id'},
            {field: 'txm', sort: true, title: '条形码'},
            {field: 'name', sort: true, title: '名称'},
            {field: 'gg', sort: true, title: '规格'},
            {field: 'dw', sort: true, title: '单位'},
            {field: 'cd', sort: true, title: '产地'},
            {field: 'chl', sort: true, title: '存货量'},
            {field: 'type', sort: true, title: '所属类别'},
            {field: 'lsj', sort: true, title: '零售价'},
            {field: 'pfj', sort: true, title: '批发价'},
            {field: 'bz', sort: true, title: '备注'},
            {align: 'center', toolbar: '#tableBar', title: '操作',minWidth:200}
        ]];
    };

    /*
    * 商品类型选择框
    * */
    $.post({
        url:'/lxTypeLwh/chaType',

        success: function (data){
            if (data != null){
                $('#type').empty();
                $('#type').append(new Option("请选择商品类别",""));
                $.each(data,function (index,item){
                    $('#type').append(new Option(item.typeName));
                }); $(".layui-icon-refresh").click();
            }else {
                $('#type').append(new Option("暂无数据",""))
            }
        }
    })


    /**
     * 点击查询按钮
     */
    LxGoodsLwh.search = function () {
        var queryData = {};
        queryData['type'] = $("#type").val();
        queryData['txm'] = $("#txm").val();
        queryData['cd'] = $("#cd").val();
        queryData['lsj'] = $("#lsj").val();
        table.reload(LxGoodsLwh.tableId, {
            where: queryData, page: {curr: 1},
             done:function () {
                 // 搜索按钮点击事件
                 $('#btnSearch').click(function () {
                     LxGoodsLwh.search();
                 });
                 // 购买按钮点击事件
                 $('#btnBuy').click(function () {
                     LxGoodsLwh.createOrder();
                 });
                 // 添加按钮点击事件
                 $('#btnAdd').click(function () {
                     LxGoodsLwh.openAddDlg();
                 });
                 // 导出excel
                 $('#btnExp').click(function () {
                     LxGoodsLwh.exportExcel();
                 });
            },
        });

        /*
        * 商品类型选择框
        * */
        $.post({
            url:'/lxTypeLwh/chaType',

            success: function (data){
                if (data != null){
                    $('#type').empty();
                    $('#type').append(new Option("请选择商品类别",""));
                    $.each(data,function (index,item){
                        $('#type').append(new Option(item.typeName));
                    }); $(".layui-icon-refresh").click();
                }else {
                    $('#type').append(new Option("暂无数据",""))
                }
            }
        })
    };

    /**
     * 弹出添加对话框
     */
    LxGoodsLwh.openAddDlg = function () {
        window.location.href = Feng.ctxPath + '/lxGoodsLwh/add';
    };

    /**
     * 导出excel按钮
     */
    LxGoodsLwh.exportExcel = function () {
        var checkRows = table.checkStatus(LxGoodsLwh.tableId);
        if (checkRows.data.length === 0) {
            Feng.error("请选择要导出的数据");
        } else {
            table.exportFile(tableResult.config.id, checkRows.data, 'xls');
        }
    }

    /**
     * 点击编辑
     *
     * @param data 点击按钮时候的行数据
     */
    LxGoodsLwh.openEditDlg = function (data) {
        window.location.href = Feng.ctxPath + '/lxGoodsLwh/edit?id=' + data.id;
    };

    /**
     * 点击删除
     *
     * @param data 点击按钮时候的行数据
     */
    LxGoodsLwh.onDeleteItem = function (data) {
        var operation = function () {
            var ajax = new $ax(Feng.ctxPath + "/lxGoodsLwh/delete", function (data) {
                Feng.success("删除成功!");
                table.reload(LxGoodsLwh.tableId);
            }, function (data) {
                Feng.error("删除失败!" + data.responseJSON.message + "!");
            });
            ajax.set("id", data.id);
            ajax.start();
        };
        Feng.confirm("是否删除?", operation);
    };

    // 点击购买
    LxGoodsLwh.createOrder = function () {
        var checkRows = table.checkStatus(LxGoodsLwh.tableId);
        // 生成订单日期
        var myDate = new Date;
        var year = myDate.getFullYear(); //获取当前年
        var mon = myDate.getMonth() + 1; //获取当前月
        var date = myDate.getDate(); //获取当前日
        var orderTime = year + '-' + mon + '-' + date;

        //生成订单编号
        function generateOrderCode() {
            var timestamp = new Date().getTime(); // 获取当前时间戳
            var randomNum = Math.floor(Math.random() * 10000); // 生成一个随机数

            var orderCode = 'ORD-' + timestamp + '-' + randomNum; // 拼接订单编码
            return orderCode;
        }

        if (checkRows.data.length === 0) {
            Feng.error("请选择要购买的商品");
            return;
        }

        for (var n = 0; n < checkRows.data.length; n++) {
            // 弹出层配置项
            var options = {
                title: '购买数量',
                content: '请输入购买数量：<br><table id="buyTable" class="layui-table">' +
                    '<thead><tr><th>商品名称</th><th>购买数量</th></tr></thead>' +  //两列
                    '<tbody></tbody></table>',    //表格主体
                area: ['500px', '350px'],  //弹窗高度和宽度
                btn: ['确定', '取消'],
                success: function () {   //弹窗打开成功后执行的回调函数
                    var html = '';    //定义变量 html
                    for (var i = 0; i < checkRows.data.length; i++) {   //遍历选中的商品列表，生成每个商品的购买数量输入框
                        html += '<tr>' +   //拼接一行表格
                            '<td>' + checkRows.data[i].name + '</td>' +
                            '<td><input class="buyNumber" type="number" min="0" style="min=0;height:35px;width:100px;padding-left: 10px;"></td>' +
                            '</tr>';  //结束拼接
                    }
                    $("#buyTable tbody").html(html);   //结束遍历
                },
                yes: function(index){
                    // 点击确定按钮时的回调函数
                    // 假设您已经有一个集合，例如：
                    var inputValues = [];
                    // 遍历所有的 .buyNumber 输入框
                    $('.buyNumber').each(function() {
                        // 将输入框的值添加到集合中
                        inputValues.push($(this).val());
                    });

                    let shouldContinue = true;

                    for (var i = 0; i < inputValues.length; i++) {
                        if (inputValues[i] <= 0|| isNaN(inputValues[i]) || inputValues[i] % 1 !== 0) {
                            Feng.error("请输入正确的购买数量");
                            location.reload();
                            shouldContinue = false;
                            break;  // 退出循环
                        } else if (parseInt(inputValues[i]) > parseInt(checkRows.data[i].chl)) {
                            Feng.error("存货量不够");
                            console.log(inputValues[i]);
                            console.log(checkRows.data[i].chl);
                            location.reload();
                            shouldContinue = false;
                            break;  // 退出循环
                        }else{
                            shouldContinue = true;
                        }
                    }
                    if (shouldContinue){
                        // 根据商品id扣减存货量
                        for (var i = 0; i < checkRows.data.length; i++) {
                            $.post({
                                url: '/lxGoodsLwh/reduceChl',
                                dataType:'json',
                                async: false,
                                data: {
                                    id: checkRows.data[i].id,
                                    buyNumber: inputValues[i],
                                }
                            })
                        }

                        // 生成订单
                        for (var j = 0; j < checkRows.data.length; j++) {

                            var url = Feng.ctxPath + '/lxOrderLwh/createOrder';
                            // 调用生成订单编码的函数
                            var orderCode = generateOrderCode();
                            var params = {
                                orderBh: orderCode,
                                orderTxm: checkRows.data[j].txm,
                                orderTime: orderTime,
                                orderNumber: inputValues[j],
                                orderTotal: inputValues[j] * checkRows.data[j].lsj,
                                orderPerson: 'test'
                            };

                            $.ajax({
                                url: url,
                                type: 'GET',
                                data: params,
                                success: function() {
                                    Feng.success("购买成功！");
                                    table.reload(LxGoodsLwh.tableId, {
                                        done:function () {
                                            // 搜索按钮点击事件
                                            $('#btnSearch').click(function () {
                                                LxGoodsLwh.search();
                                            });
                                            // 购买按钮点击事件
                                            $('#btnBuy').click(function () {
                                                LxGoodsLwh.createOrder();
                                            });
                                            // 添加按钮点击事件
                                            $('#btnAdd').click(function () {
                                                LxGoodsLwh.openAddDlg();
                                            });
                                            // 导出excel
                                            $('#btnExp').click(function () {
                                                LxGoodsLwh.exportExcel();
                                            });
                                        },
                                    });
                                    /*
                                    * 商品类型选择框
                                    * */
                                    $.post({
                                        url:'/lxTypeLwh/chaType',

                                        success: function (data){
                                            if (data != null){
                                                $('#type').empty();
                                                $('#type').append(new Option("请选择商品类别",""));
                                                $.each(data,function (index,item){
                                                    $('#type').append(new Option(item.typeName));
                                                }); $(".layui-icon-refresh").click();
                                            }else {
                                                $('#type').append(new Option("暂无数据",""))
                                            }
                                        }
                                    })
                                },
                                error: function(xhr) {
                                    var errorMessage = xhr.responseJSON ? xhr.responseJSON.message : '请求失败';
                                    Feng.error("删除失败！" + errorMessage + "！");
                                }
                            });
                        }

                    }

                    table.reload(LxGoodsLwh.tableId);

                    layer.close(index);
                },
                btn2: function(index){
                    // 点击取消按钮时的回调函数
                    Feng.error("购买取消！");
                    layer.close(index);
                }
            };
        }
        // 弹出层
        layer.open(options);
    }

    // 渲染表格
    var tableResult = table.render({
        elem: '#' + LxGoodsLwh.tableId,
        url: Feng.ctxPath + '/lxGoodsLwh/list',
        page: true,
        limit: 20,
        height: "full-60",
        toolbar: '#toolbarfrom',
        cellMinWidth: 100,
        cols: LxGoodsLwh.initColumn()
    });

    // 搜索按钮点击事件
    $('#btnSearch').click(function () {
        LxGoodsLwh.search();
    });

    // 购买按钮点击事件
    $('#btnBuy').click(function () {
        LxGoodsLwh.createOrder();
    })

    // 添加按钮点击事件
    $('#btnAdd').click(function () {
        LxGoodsLwh.openAddDlg();
    });

    // 导出excel
    $('#btnExp').click(function () {
        LxGoodsLwh.exportExcel();
    });

    // 工具条点击事件
    table.on('tool(' + LxGoodsLwh.tableId + ')', function (obj) {
        var data = obj.data;
        var layEvent = obj.event;

        if (layEvent === 'edit') {
            LxGoodsLwh.openEditDlg(data);
        } else if (layEvent === 'delete') {
            LxGoodsLwh.onDeleteItem(data);
        }
    });
});
